package com.main.usermanagement.interfaces.dto;

import com.main.common.base.base.dto.BaseAddDTO;
import com.main.common.enums.Gender;
import com.main.usermanagement.domain.user.valueobject.Address;
import com.main.usermanagement.domain.user.valueobject.Email;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

@Schema(description = "注册用户数据")
@EqualsAndHashCode(callSuper = true)
@Data
public class RegisterDTO extends BaseAddDTO {

        @Schema(description = "姓名")
        private String name;

        @Schema(description ="手机号")
        @NotBlank(message = "{Phone.NotBlank}")
        private String phone;

        @Schema(description ="区号")
        @NotBlank(message = "{PhoneCode.NotBlank}")
        private String phoneCode;

        @Schema(description ="邮箱")
        private Email email;

        @Schema(description ="微信")
        private String wechat;

        @Schema(description ="上级id")
        private Long directSupervisorId;

        @Schema(description ="组织原子id")
        private Long organizationAtomicId;

        @Schema(description ="性别")
        private Gender gender;

        @Schema(description ="出生日期")
        private Date birthDate;

        @Schema(description ="身份证号")
        private String idCard;

        @Schema(description ="住址")
        private Address address;

        @Schema(description ="客户端Id")
        @NotNull(message = "{Client.NotBlank}")
        private Long clientId;

}
